# 定义
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, [3, 4], 5]
list3 = [1, '2', 3, {'name': '张三'}]

# 取值
# print(list1[1])
# print(list2[2])
# print(list3[3])

# 修改
list1[0] = 2
list2[2][1] = 1
# print(list2[2])

# 插入
list1.append("尾插法")
list2.insert(1, "下标定位插入")
# print(list2)

# python list
# 存储的数据没有type限制
# 下标有两套 正序一份 倒叙一份
# 最大的优势 支持切片

# list[起始值,结束值,步长]  === in range(起始值,结束值,步长)
# 正序索引:
#     如果起始值从索引0开始,第一个参数可以省略
#     如果结束值是集合的最后一位,第二个参数可以省略
#     如果步长等于1,则第三个参数可以省略

list4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(list4[2:9:2])

# list遍历
# 方法一 for -- in  ==取值
for val in list4:
    if val % 2 == 0:
        print(val)
# 方法二 for -- in range() == 取索引
for index in range(len(list4)):
    if list4[index] % 2 == 0:
        print(list4[index])

# 方法三 索引和值同时取
for index, value in enumerate(list4):
    print(index, end='\t')
    print(value)

# list常用方法
# append insert extend 添加元素
# remove pop clear 删除元素
list4.remove(3)  # 删除符合条件的第一个值
list4.clear()